package cn.openea.perpartner.evaluation.web.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @author rains
 * @since 2023-07-05 14:18
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
@TableName("meily_evaluation_task")
public class EvaluationTask implements Serializable {
    private static final long serialVersionUID = 154127161949863834L;

    @TableId
    private String id;
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private String createTime;
    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateTime;
    /**
     * 发起人id
     */
    @NotBlank
    private String initiatorId;
    /**
     * 发起人昵称
     */
    @NotBlank
    private String initiatorName;
    /**
     * 发起人头像
     */
    private String avatarUrl;
    /**
     * 工单号
     */
    private String taskNumber;
    /**
     * 活动名称
     */
    @NotBlank
    private String subject;
    /**
     * 手动录入的活动主图（仅一张）
     */
    private String mainPicture;
    /**
     * 标题标签
     */
    private String label;
    /**
     * 活动名额（个）
     */
    @NotBlank
    @Min(0)
    private Integer quota = 0;
    /**
     * 报名截止时间
     */
    @NotBlank
    private String joinEndTime;
    /**
     * 提交成果周期(天)
     */
    @NotBlank
    private Integer submitLimitDays;
    /**
     * 活动结束时间
     */
    @NotBlank
    private String endTime;
    /**
     * 评级时间
     */
    @NotBlank
    private String ratingTime;
    /**
     * 验收人员id（发起人指定的）
     */
    @NotBlank
    private String inspectorId;
    /**
     * 验收人员昵称（发起人指定的）
     */
    @NotBlank
    private String inspectorName;
    /**
     * 评级人员id（发起人指定的）
     */
    @NotBlank
    private String ratingMemberId;
    /**
     * 评级人员昵称（发起人指定的）
     */
    @NotBlank
    private String ratingMemberName;
    /**
     * 品牌推广客服
     */
    private String openKfid;
    /**
     * 活动面向群体。0:测评师；1:区域服务商；2:全部用户
     */
    private String eventParticipants;
    /**
     * 等级要求。(A级/B级+/C级+/D级+/E级+/F级+)
     */
    private String restrictionLevel;
    /**
     * 限制报名周期(天)。默认0
     */
    private Integer joinLimitDays = 0;
    /**
     * 提交收货信息。0:否；1:是；默认0
     */
    @NotBlank
    private String submitConsigneeInfo = "0";
    /**
     * 是否开启评级。0:否；1:是；默认0
     */
    @NotBlank
    private String enableRating = "0";
    /**
     * A级名额
     */
    private Integer levelAQuota;
    /**
     * B级名额
     */
    private Integer levelBQuota;
    /**
     * C级名额
     */
    private Integer levelCQuota;
    /**
     * A级报酬
     */
    private BigDecimal levelAReward  = BigDecimal.ZERO;
    /**
     * B级报酬
     */
    private BigDecimal levelBReward  = BigDecimal.ZERO;
    /**
     * C级报酬
     */
    private BigDecimal levelCReward = BigDecimal.ZERO;
    /**
     * A级优惠券金额
     */
    private BigDecimal levelACouponAmount  = BigDecimal.ZERO;
    /**
     * B级优惠券金额
     */
    private BigDecimal levelBCouponAmount = BigDecimal.ZERO;
    /**
     * C级优惠券金额
     */
    private BigDecimal levelCCouponAmount = BigDecimal.ZERO;
    /**
     * A级优惠券适用范围。0此商品；1全部商品
     */
    private String levelACouponRange;
    /**
     * B级优惠券适用范围。0此商品；1全部商品
     */
    private String levelBCouponRange;
    /**
     * C级优惠券适用范围。0此商品；1全部商品
     */
    private String levelCCouponRange;
    /**
     * A级评级标准
     */
    private String levelARatingCriteria;
    /**
     * B级评级标准
     */
    private String levelBRatingCriteria;
    /**
     * C级评级标准
     */
    private String levelCRatingCriteria;
    /**
     * 报酬
     */
    private BigDecimal reward = BigDecimal.ZERO;
    /**
     * 优惠券金额
     */
    private BigDecimal couponAmount = BigDecimal.ZERO;
    /**
     * 优惠券适用范围。0此商品；1全部商品
     */
    private String couponRange;
    /**
     * 推广任务
     */
    private String taskRequirements;
    /**
     * 推广任务图片
     */
    private String taskRequirementsPicture;
    /**
     * 验收标准
     */
    private String acceptanceCriteria;
    /**
     * 验收标准图片
     */
    private String acceptanceCriteriaPicture;
    /**
     * 是否需要填写工作报告。0:不开启；1:开启。默认1
     */
    @NotBlank
    private String enableReport = "1";
    /**
     * 是否需要上传工作素材。0:不开启；1:开启。默认1
     */
    @NotBlank
    private String enableMaterial = "1";
    /**
     * 是否需要上传截图凭证。0:不开启；1:开启。默认1
     */
    @NotBlank
    private String enableVoucher = "1";
    /**
     * 是否需要填写订单号。0:不开启；1:开启。默认0
     */
    @NotBlank
    private String enableOrderId = "0";
    /**
     * 支付订单号
     */
    @NotBlank
    private String orderId;
    /**
     * 任务状态。0:正常结束(到期自动结束)；1:正在进行中；2:报名结束；3:活动作废(手动结束)
     */
    private String taskStatus = "1";
    /**
     * 剩余名额
     */
    private Integer remainQuota;
    /**
     * 报名记录id
     */
    private String allSignUpId;
    /**
     * 所有参与者id
     */
    private String allPartnerId;
    /**
     * 所有参与者id
     */
    private String allPartnerName;
    /**
     * 测评需求记录唯一ID
     */
    private String evaluationId;
    /**
     * 商品id
     */
    @NotBlank
    private String goodsId;
    /**
     * 商品编号
     */
    private String goodsNo;
    /**
     * 商品名称
     */
    private String goodsName;
    /**
     * 商品图
     */
    private String goodsImages;
    /**
     * 商品标签
     */
    private String goodsTag;
    /**
     * 商品规格
     */
    private String specification;
    /**
     * 定制ID
     */
    private String sceneAssetsId;
    /**
     * 场景ID
     */
    private String sceneId;
    /**
     * 所属企业编码
     */
    private String enterpriseNo;
    /**
     * 所属企业名称
     */
    private String enterpriseName;
    /**
     * 是否公开活动。0否；1是
     */
    private String open;

    /**
     * 商品JSON串（包含基本信息/价值分配)
     */
    private String goodsJson;

}
